package com.lx.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * OptimisticLockerInterceptor
 * 乐观锁插件
 * 当要更新一条记录的时候，希望这条记录没有被别人更新
 *
 * 乐观锁实现方式：
 *
 * 取出记录时，获取当前version
 * 更新时，带上这个version
 * 执行更新时， set version = yourVersion+1 where version = yourVersion
 * 如果version不对，就更新失败
 */
@Configuration
public class MybatisPlusConfig {

    @Bean
    public OptimisticLockerInterceptor  optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }

    /**
     * 分页查询
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
}
